﻿// ===============================================================================
//  Copyright © ymind.net. All rights reserved .
//  官方网站：http://ymind.net/
//  版权所有：彦铭工作室 老陈出品
// ===============================================================================

using System;
using System.Collections.Generic;
using System.IO;
using System.Runtime.InteropServices;
using Lcsoft.TemplateEngine.Tags;
using Lcsoft.TemplateEngine.XHtmlParser;

namespace Lcsoft.TemplateEngine.Core
{
	/// <summary>
	/// 包含创建代码合并文件的事件数据。
	/// </summary>
	[Serializable]
	[ComVisible(false)]
	public class CreateFileNameEventArgs : EventArgs
	{
		/// <summary>
		/// 初始化 <see cref="CreateFileNameEventArgs"/> 类的新实例。
		/// </summary>
		/// <param name="templateEngine">当前 <see cref="AspxTemplateEngine"/> 的实例。</param>
		/// <param name="tags">当前正在合并的文件的集合。</param>
		public CreateFileNameEventArgs(AspxTemplateEngine templateEngine, Dictionary<FileInfo, PackingTag> tags)
		{
			this.TemplateEngine = templateEngine;
			this.Document = this.TemplateEngine.Document;
			this.Tags = tags;
		}

		/// <summary>
		/// 获取当前 <see cref="AspxTemplateEngine"/> 的实例。
		/// </summary>
		public AspxTemplateEngine TemplateEngine { get; private set; }

		/// <summary>
		/// 获取当前正在处理的模板文档的实例。
		/// </summary>
		public XHtmlDocument Document { get; private set; }

		/// <summary>
		/// 获取当前正在合并的文件的集合。
		/// </summary>
		public Dictionary<FileInfo, PackingTag> Tags { get; private set; }

		/// <summary>
		/// 获取或设置保存文档内容的文件的完整物理路径。
		/// </summary>
		public string FileName { get; set; }
	}
}
